#!/bin/bash

# 导出 Kubernetes XX命名空间下的所有 Service

# 定义命名空间
NAMESPACE="test"

# 创建输出目录
OUTPUT_DIR="./svc_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$OUTPUT_DIR"
echo "创建输出目录: $OUTPUT_DIR"

# 获取所有 Service 名称
echo "获取 $NAMESPACE 命名空间下的所有 Service..."
SVC_LIST=$(kubectl get svc -n "$NAMESPACE" -o jsonpath='{.items[*].metadata.name}')

# 检查是否找到 Service
if [ -z "$SVC_LIST" ]; then
    echo "未找到任何 Service，脚本退出。"
    exit 1
fi

echo "找到以下 Service:"
echo "$SVC_LIST" | tr ' ' '\n'

# 导出每个 Service
echo "开始导出 Service..."
for svc in $SVC_LIST; do
    echo "导出: $svc"
    kubectl get svc "$svc" -n "$NAMESPACE" -o yaml > "$OUTPUT_DIR/${svc}.yaml"
done

# 打包备份文件
echo "打包备份文件..."
tar -czf "${OUTPUT_DIR}.tar.gz" -C "$(dirname "$OUTPUT_DIR")" "$(basename "$OUTPUT_DIR")"

echo "导出完成！"
echo "Service 已导出到: ${OUTPUT_DIR}.tar.gz"